package org.yjw.aspect;

import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.ProceedingJoinPoint;

/**
 * @author 31898
 * @date 2021.11.03
 * 通知类 (只有增强代码，没有切入点，切入点需要以xml的形式体现)
 * 通过xml的形式实现SpringAOP
 */
public class XmlAspectTest {

    /**
     * 前置增强
     *
     * @param jp
     */
    public void before(JoinPoint jp) {
        System.out.println("前置增强");
    }

    /**
     * 后置增强
     *
     * @param jp
     * @param result
     */
    public void afterReturning(JoinPoint jp, Object result) {
        System.out.println("后置增强");
    }

    /**
     * 异常抛出增强
     *
     * @param jp
     * @param e
     */
    public void afterThrowing(JoinPoint jp, RuntimeException e) {
        System.out.println("异常抛出增强");
    }

    /**
     * 最终增强
     *
     * @param jp
     */
    public void after(JoinPoint jp) {
        System.out.println("最终增强");
    }

    /**
     * 环绕增强
     *
     * @param jp
     * @return
     */
    public void around(ProceedingJoinPoint jp) {
        System.out.println("环绕增强");
    }


}
